package com.zhn.evsi.controller.Evsi;

import com.sun.org.apache.xpath.internal.operations.Or;
import com.zhn.evsi.common.Result;
import com.zhn.evsi.domain.dto.evsi.EvsiCharacterLocationSolarDTO;
import com.zhn.evsi.domain.dto.evsi.EvsiCharacterOnlineDTO;
import com.zhn.evsi.domain.dto.evsi.EvsiCharacterShipDTO;
import com.zhn.evsi.service.IEvsiCharacterService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiOperationSupport;
import io.swagger.annotations.ApiSort;
import lombok.AllArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;


@Api(tags = "角色信息管理")
@ApiSort(value = 2)
@RequestMapping("/Evsi/character")
@RestController
public class EvsiCharacterController {

    @Autowired
    private IEvsiCharacterService characterService;

    @ApiOperation("获取角色公开信息")
    @ApiOperationSupport(order = 1)
    @GetMapping("/publicInfo")
    public Result publicInfo() {
        return Result.success(characterService.publicInfo());
    }

    @ApiOperation("获取当前地址")
    @ApiOperationSupport(order = 2)
    @GetMapping("/location")
    public Result location() {
        EvsiCharacterLocationSolarDTO location = characterService.location();
        return Result.success(location);
    }

    @ApiOperation("获取登录状态")
    @ApiOperationSupport(order = 3)
    @GetMapping("/online")
    public Result online() {
        EvsiCharacterOnlineDTO online = characterService.online();
        return Result.success(online);
    }

    @ApiOperation("获取当前舰船")
    @ApiOperationSupport(order = 4)
    @GetMapping("/ship")
    public Result ship() {
        EvsiCharacterShipDTO ship = characterService.ship();
        return Result.success(ship);
    }

    @ApiOperation("获取克隆体")
    @ApiOperationSupport(order = 5)
    @GetMapping("/clones")
    public Result clones() {
        return Result.success(characterService.clones());
    }

    @ApiOperation("获取植入体")
    @ApiOperationSupport(order = 6)
    @GetMapping("/implants")
    public Result implants() {
        return Result.success(characterService.implants());
    }

    @ApiOperation("研究")
    @ApiOperationSupport(order = 7)
    @GetMapping("/agentsResearch")
    public Result agentsResearch() {
        return Result.success(characterService.agentsResearch());
    }

    @ApiOperation("蓝图")
    @ApiOperationSupport(order = 8)
    @GetMapping("/blueprints")
    public Result blueprints() {
        return Result.success(characterService.blueprints());
    }

    @ApiOperation("获取军团历史")
    @ApiOperationSupport(order = 9)
    @GetMapping("/corporationHistory")
    public Result corporationHistory() {
        return Result.success(characterService.corporationHistory());
    }

    @ApiOperation("跳跃疲劳")
    @ApiOperationSupport(order = 10)
    @GetMapping("/fatigue")
    public Result fatigue() {
        return Result.success(characterService.fatigue());
    }

    @ApiOperation("奖牌")
    @ApiOperationSupport(order = 11)
    @GetMapping("/medals")
    public Result medals() {
        return Result.success(characterService.medals());
    }

    @ApiOperation("角色通知")
    @ApiOperationSupport(order = 12)
    @GetMapping("/notifications")
    public Result notifications() {
        return Result.success(characterService.notifications());
    }

    @ApiOperation("联系人通知")
    @ApiOperationSupport(order = 13)
    @GetMapping("/notificationContacts")
    public Result notificationContacts() {
        return Result.success(characterService.notificationContacts());
    }

    @ApiOperation("角色肖像")
    @ApiOperationSupport(order = 14)
    @GetMapping("/portrait")
    public Result portrait() {
        return Result.success(characterService.portrait());
    }

    @ApiOperation("角色所在军团权限")
    @ApiOperationSupport(order = 15)
    @GetMapping("/roles")
    public Result roles() {
        return Result.success(characterService.roles());
    }

    @ApiOperation("角色榜单")
    @ApiOperationSupport(order = 16)
    @GetMapping("/standings")
    public Result standings() {
        return Result.success(characterService.standings());
    }

    @ApiOperation("军团标题")
    @ApiOperationSupport(order = 17)
    @GetMapping("/titles")
    public Result titles() {
        return Result.success(characterService.titles());
    }

}
